-- @Author: 作者QQ381990860
-- @Date:   2021-11-09 01:10:05
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-09-13 21:43:32
--======================================================================--
-- @作者: JJJ.ma
-- @创建时间:   2019-12-03 02:17:19
-- @Last Modified time: 2021-12-20 19:47:48
--======================================================================--
local 场景类_世界地图分类小地图 = class()--超级合成旗
local tp,pt
local xys = 生成XY
local floor = math.floor
local format = string.format
local mousea = 引擎.鼠标按住
local mouseb = 引擎.鼠标弹起
local wns = 引擎.文件是否存在
local insert = table.insert
local fgz = 分割字符
local tonumber = tonumber
local 当前地图12 = 0
local jrj = require("script/Role/假人")
local 小地图宽度 = 0
local 小地图高度 = 0
local bw = require("gge包围盒")(0,0,0,16)
local zts1
local number = tonumber
local string = tostring

--======================================================================--
function 场景类_世界地图分类小地图:初始化(根)
	self.ID = 1
	self.注释 = "世界地图分类小地图"
	self.可视 = false
	self.鼠标 = false
	self.焦点 = false
	self.可移动 = true
	self.记忆地图 = 0
	self.窗口时间 = 0
	self.目标格子 = xys()
	local 资源 = 根.资源
	local 自适应 = 根._自适应
	tp = 根
	self.标记 = 资源:载入('JM.dll',"网易WDF动画",0x393947EB)
	self.终点 = 资源:载入('JM.dll',"网易WDF动画",0xDEE57252)
	self.小点=  资源:载入('JM.dll',"网易WDF动画",0xF792E03C)
	self.地图 = require("script/MAP/地图类")(根,self)
	self.世界 = 根._按钮.创建(自适应.创建(12,4,55,20,1,3),0,0,4,true,true,"世界")
	self.关闭 =根._按钮.创建(自适应.创建(18,4,16,16,4,3),0,0,4,true,true)
	self.普通 = 根._按钮.创建(资源:载入('JM.dll',"网易WDF动画",0xFF205590),0,0,1,true,true)
	self.普通:置根(根)
	self.普通:置偏移(-3,2)
	self.传送 = 根._按钮.创建(资源:载入('JM.dll',"网易WDF动画",0xFF205590),0,0,1,true,true)
	self.传送:置根(根)
	self.传送:置偏移(-3,2)
	self.传送圈 = 根._按钮.创建(资源:载入('JM.dll',"网易WDF动画",0xFF205590),0,0,1,true,true)
	self.传送圈:置根(根)
	self.传送圈:置偏移(-3,2)
	self.特殊 = 根._按钮.创建(资源:载入('JM.dll',"网易WDF动画",0xFF205590),0,0,1,true,true)
	self.特殊:置根(根)
	self.特殊:置偏移(-3,2)
	self.商店 = 根._按钮.创建(资源:载入('JM.dll',"网易WDF动画",0xFF205590),0,0,1,true,true)
	self.商店:置根(根)
	self.商店:置偏移(-3,2)
	self.任务 = 根._按钮.创建(资源:载入('JM.dll',"网易WDF动画",0xFF205590),0,0,1,true,true)
	self.任务:置根(根)
	self.任务:置偏移(-3,2)
	self.全部 = 根._按钮.创建(资源:载入('JM.dll',"网易WDF动画",0xFF205590),0,0,1,true,true)
	self.全部:置根(根)
	self.全部:置偏移(-3,2)
	self.普通显示 = false
	self.全部显示 = false
	self.传送显示 = false
	self.传送圈显示 = false
	self.特殊显示 = false
	self.商店显示 = false
	self.任务显示 = false

	self.偏移X = 0
	self.偏移Y = 0
	self.背景窗口 = tp._自适应.创建(0,1,0,0,3,9)
	self.窗口时间 = 0
	self.目标格子 = nil
	self.xx = 0
	self.yy = 0
	self.my = 0
	self.传送圈动画 = 根.资源:载入("JM.dll","网易WDF动画",0x558897FF)
	zts1 = 根.字体表.描边字体
	pt = 根.字体表.描边字体
	self.间隔 =0
end

function 场景类_世界地图分类小地图:打开(map,类型,格子,道具名称)--超级合成旗
	local Smap,Smapa = tp.窗口.小地图:mapsa(map)
	self.map = map
	if Smap == nil then
		if self.可视 then
			self.可视 = false
		else
			tp.窗口.聊天框类:添加文本("此场景无法查看小地图")
		end
	else
		self.类型 = 类型
	    self.格子 = 格子
	    self.道具名称 = 道具名称
		if self.记忆地图 ~= map then
			local ids = format("./Data/pic/%d.png",map)
			if wns(ids) and Smap == nil then
				self.小地图 = tp.资源:载入(ids,"图片")
				self.my = 2
			else
			    self.小地图 = tp.资源:载入(Smap,"网易WDF动画",Smapa)
			end
			self.宽度 = self.小地图:取宽度()
			self.高度 = self.小地图:取高度()
			local fg = {}
			fgz(string(self.高度),fg)
			fg = number(fg[3])
			local v = 27
			if fg == 1 or fg == 3 or fg == 5 or fg == 7 or fg == 9 then
				v = 26
			end
			self.x = self.x or floor((全局游戏宽度 - self.宽度) /2)
			self.y = self.y or floor((全局游戏高度 - self.高度) /2)
			self.qx = nil
			self.qy = nil
			if self.宽度>= 500 then
				self.背景窗口:置宽高(self.宽度+v+2,self.高度+v+28)
			else
			    self.背景窗口:置宽高(self.宽度+84,self.高度+v)
			end
			self.偏移X = (self.宽度 - 20) / tp.场景.地图.宽度
			self.偏移Y = (self.高度 - 20)/ tp.场景.地图.高度
			self.记忆地图 = map
			self.可视 = true
			tp.运行时间 = tp.运行时间 + 1
			self.窗口时间 = tp.运行时间
			insert(tp.窗口_,self)
		elseif self.记忆地图 == map and self.可视 then
			self.qx = nil
			self.qy = nil
		    self.可视 = false

		elseif self.可视 == false and self.记忆地图 == map then
			self.qx = nil
			self.qy = nil
			self.可视 = true
			insert(tp.窗口_,self)
			tp.运行时间 = tp.运行时间 + 1
			self.窗口时间 = tp.运行时间
		end
	end
	return false
end

function 场景类_世界地图分类小地图:显示(dt,x,y)
	self.选中人物 = false
	self.焦点 = false
	self.普通:更新(x,y)
	self.传送圈:更新(x,y)
	self.传送:更新(x,y)
	self.特殊:更新(x,y)
	self.商店:更新(x,y)
	self.任务:更新(x,y)
    self.全部:更新(x,y)
	if self.普通:事件判断() then
		self.普通:置打勾框(not self.普通显示)
		self.普通显示 = not self.普通显示
	elseif self.传送圈:事件判断() then
		self.传送圈:置打勾框(not self.传送圈显示)
		self.传送圈显示 = not self.传送圈显示
	elseif self.传送:事件判断() then
		self.传送:置打勾框(not self.传送显示)
		self.传送显示 = not self.传送显示
	elseif self.特殊:事件判断() then
		self.特殊:置打勾框(not self.特殊显示)
		self.特殊显示 = not self.特殊显示
   	elseif self.任务:事件判断() then
		self.任务:置打勾框(not self.任务显示)
		self.任务显示 = not self.任务显示
	 elseif self.商店:事件判断() then
		self.商店:置打勾框(not self.商店显示)
		self.商店显示 = not self.商店显示
	elseif self.全部:事件判断() then

		self.全部:置打勾框(not self.全部显示)
		self.全部显示 = not self.全部显示
		self.普通:置打勾框(self.全部显示)
		self.普通显示 = self.全部显示
		self.传送圈:置打勾框(self.全部显示)
		self.传送圈显示 = self.全部显示
		self.传送:置打勾框(self.全部显示)
		self.传送显示 = self.全部显示
		self.特殊:置打勾框(self.全部显示)
		self.特殊显示 = self.全部显示
		self.任务:置打勾框(self.全部显示)
		self.任务显示 = self.全部显示
		self.商店:置打勾框(self.全部显示)
		self.商店显示 = self.全部显示
	end

	if self.鼠标 then
		if self.世界:事件判断() then
			self:打开()
			tp.窗口.世界大地图:打开()
		elseif self.关闭:事件判断() then
			self:打开()
		end
	end

	self.背景窗口:显示(self.x-16,self.y-17)
	if self.普通显示 or self.传送圈显示 or self.特殊显示 or self.传送显示 or self.任务显示 or  self.商店显示 or  self.全部显示 then
		self.小地图:置颜色(-6579301)
	else
		self.小地图:置颜色(4294967295)
	end
	self.小地图:显示(self.x,self.y-self.my)
	local csdz = tp.场景.传送
	local csqsj=tp.场景.传送圈数据
	if self.传送圈显示 or self.全部显示 then
	    	for i=1,#csqsj do
		 self.传送圈动画:显示(floor(csqsj[i][1]*20* self.偏移X + self.x),floor(csqsj[i][2] *20* self.偏移Y + 10 + self.y))

	   end
	end
    self.传送圈动画:更新(dt)
	local v = self.x + self.背景窗口.宽度 - 48
	local v2 = self.y + self.背景窗口.高度 - 48
	self.关闭:显示(v+16,self.y-16)
	if self.宽度>= 500 then
		tp.字体表.普通字体:置颜色(0xFF80FFFF):显示(self.x +23,v2+ 2,"全部")
		tp.字体表.普通字体:置颜色(0xFFFFFFFF):显示(self.x +60+23,v2+ 2,"普通")
		tp.字体表.普通字体:置颜色(0xFF3737FF):显示(self.x +120+23,v2+ 2,"出口")
		tp.字体表.普通字体:置颜色(0xFFFFFF00):显示(self.x +180+23,v2+ 2,"传送")
		tp.字体表.普通字体:置颜色(0xFF00FF00):显示(self.x +240+23,v2+ 2,"特殊")
		tp.字体表.普通字体:置颜色(0xFFFF0000):显示(self.x +300+23,v2+ 2,"任务")
		tp.字体表.普通字体:置颜色(0xFFFF8000):显示(self.x +360+23,v2+ 2,"商店")
		self.世界:显示(v-34,v2)
		self.全部:显示(self.x-5+1*60,v2-3 ,true)
		self.普通:显示(self.x-5+2*60,v2-3,true)
		self.传送圈:显示(self.x-5+3*60,v2-3,true)
		self.传送:显示(self.x-5+4*60,v2-3,true)
		self.特殊:显示(self.x-5+5*60,v2-3,true)
	   	self.任务:显示(self.x-5+6*60,v2-3,true)
	   	self.商店:显示(self.x-5+7*60,v2-3,true)
	else
		tp.字体表.普通字体:置颜色(0xFF80FFFF):显示(v-34,self.y + 10,"全部")
		tp.字体表.普通字体:置颜色(0xFFFFFFFF):显示(v-34,self.y + 45,"普通")
		tp.字体表.普通字体:置颜色(0xFF3737FF):显示(v-34,self.y + 80,"出口")
		tp.字体表.普通字体:置颜色(0xFFFFFF00):显示(v-34,self.y + 115,"传送")
		tp.字体表.普通字体:置颜色(0xFF00FF00):显示(v-34,self.y + 150,"特殊")
		tp.字体表.普通字体:置颜色(0xFFFF0000):显示(v-34,self.y + 185,"任务")
		tp.字体表.普通字体:置颜色(0xFFFF8000):显示(v-34,self.y + 215,"商店")
		self.世界:显示(v-34,self.y + 250,true)
		self.全部:显示(v-3,self.y + 3 ,true)
		self.普通:显示(v-3,self.y + 38 ,true)
		self.传送圈:显示(v-3,self.y + 73,true)
		self.传送:显示(v-3,self.y + 108,true)
		self.特殊:显示(v-3,self.y + 143,true)
	   	self.任务:显示(v-3,self.y + 178,true)
	   	self.商店:显示(v-3,self.y + 213,true)
	end
		self.世界:更新(x,y)
		self.关闭:更新(x,y)

	if self.目标格子 ~= nil then
		self.终点:显示(self.x + self.目标格子.x,self.y + self.目标格子.y)

	end
    local 宽高 = self.地图:取地图宽高(self.map)
	local 鼠标坐标 = xys(floor((x - self.x)/(self.宽度/(宽高.k/20))),floor((y - self.y)/(self.高度/(宽高.g/20))))
    if  self.小地图:是否选中(x,y) and self.鼠标 and not tp.消息栏焦点 and (self.目标格子 == nil or (self.目标格子.x ~= x-self.x and self.目标格子.y ~= y-self.y))  then
        tp.提示:自定义(x+6,y+6,format("#Y/%d，%d", 鼠标坐标.x,鼠标坐标.y))
        if mouseb(0) and not tp.战斗中 and self.鼠标 and not self.选中人物 then
            tp.运行时间 = tp.运行时间 + 1
            self.窗口时间数据 = tp.运行时间
            self.发送坐标 = {x=鼠标坐标.x ,y=鼠标坐标.y ,z=self.记忆地图}
            if self.道具名称 ~= nil and self.道具名称 == "超级合成旗" then
                self:打开()
              客户端:发送数据(1,450,13,self.记忆地图.."*-*"..self.发送坐标.x.."*-*"..self.发送坐标.y.."*-*"..self.格子.."*-*"..self.类型)
            end
        end
    end
end

function 场景类_世界地图分类小地图:检查点(x,y)
	if self.背景窗口:是否选中(x,y) then
		return true
	end
end

function 场景类_世界地图分类小地图:初始移动(x,y)
	tp.运行时间 = tp.运行时间 + 1
	if not tp.消息栏焦点 then
  		self.窗口时间 = tp.运行时间
 	end
	if not self.焦点 then
		tp.移动窗口 = true
	end
	if self.鼠标 and  not self.焦点 then
		self.xx = x - self.x
		self.yy = y - self.y
	end
end

function 场景类_世界地图分类小地图:开始移动(x,y)
	if self.鼠标 then
		self.x = x - self.xx
		self.y = y - self.yy
	end
end

return 场景类_世界地图分类小地图